#!/usr/bin/env node

var image2gcode = require('../lib/image2gcode'); // 假设存在一个名为 gcode-driver 的库
var conf = require('../lib/svg2gcode/conf'); // 假设存在一个名为 config 的库
var fs = require('fs');

// 定义一个 SVG 字符串
// const svgString = `<?xml version=\"1.0\"?><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100px\" height=\"100px\" viewBox=\"0 0 100 100\"><g transform=\"matrix(0.667 0 0 0.806 25.252 25.252)\" id=\"0194019b-0eb2-4d04-b7ef-00f963d88bc4\"  ><path style=\"stroke: rgb(0,0,0); stroke-width: 0.1984126984126984; stroke-dasharray: none; stroke-linecap: butt; stroke-dashoffset: 0; stroke-linejoin: miter; stroke-miterlimit: 4; fill: none; fill-rule: nonzero; opacity: 1;\" vector-effect=\"non-scaling-stroke\"  transform=\" translate(-41.567, -38.294)\" d=\"M 5.357142857142854 8.333333333333332 L 77.77777777777777 8.333333333333332 L 77.77777777777777 68.25396825396824 L 5.357142857142854 68.25396825396824 z\" stroke-linecap=\"round\" /></g></svg>`;
var svgString = '' + fs.readFileSync('./images/qrcode.svg');

// 最终生成的 gcode，每一个元素为一行 GCode 代码
let gcode = [];

image2gcode.svg2gcode(gcode, {
  svgString: svgString, // svg 文件的字符串格式
  speedMax: 500, // 激光头最大功率 范围 0 - 1000
  feed: 5000, // 最大进给率/激光头最大移动速度 mm/min  800 - 3000
  toolDiameter: 0.05, // 激光束直径
  // DPI: 50,

  // offsetX: 0, // 打印偏移量
  // offsetY: 0,
  // canvasMatrix: [1, 0, 0, 1, 0, 0],
  // canvasMatrix: [0, 1, 1, 0, -50, -50],
  fillMode: 0, // 填充模式： 0：不填充 1: 单向填充 2：双向填充 3: 环形填充
  // fillMode: conf.FillDirection.HorizontalBi, // 填充模式： 0：不填充 1: 单向填充 2：双向填充 3: 环形填充
  // fillDir : conf.FillDirection.Hilbert, // 填充方向： 0：水平 1：垂直
  markMode: 3, // 打标模式： 0：平面达标 1：扩副打标 2：圆柱打标
  previewMode: 4, // -1 非预览 1 区域预览 2 元素预览, 3 旋转模式预览 4 旋转区域预览
  isHandhoudMode: false, // 是否为手动模式
  fillAngle: 0,
  cancelStroke: false,
  frequency: 60,
  // fillParams: {
  //   useFill: false,
  //   processTimes: 1,
  //   angleIncrement: 10,
  //   style: 6,
  //   lineSpacing: 0.1
  // },
  rotateParams: {
    diameter: 65,
    perRevolutionPulsesClamp: 12800, // 抓盘每转脉冲数
    perRevolutionPulsesRoller: 12800, // 滚轴每转脉冲数
    rollerDiameter: 20
  }
});



// 将 gcode 数组保存到文件
function build({ code,outputFilename, filename }) {
    const file = outputFilename ? outputFilename : `./${filename}.gcode`;
    fs.writeFileSync(file, code.join("\n"));
    return Promise.resolve();
};

// 输出生成的 Gcode
// console.log(gcode);
build({ code: gcode,outputFilename: './svgExample.gcode', filename: 'svgExample' });

console.log("All Done!!!");